home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 001 / pibt3sp1.arc / GETCAPTU.PAS < prev    next >
Pascal/Delphi Source File  |  1985-09-25  |  5KB  |  131 lines

  1. (*----------------------------------------------------------------------*)
  2. (*          Get_Capture_File -- Get session capture file name           *)
  3. (*----------------------------------------------------------------------*)
  4.  
  5. OVERLAY PROCEDURE Get_Capture_File( Capture_FName : AnyStr );
  6.  
  7. (*----------------------------------------------------------------------*)
  8. (*                                                                      *)
  9. (*     Procedure:  Get_Capture_File                                     *)
  10. (*                                                                      *)
  11. (*     Purpose:    Opens capture file                                   *)
  12. (*                                                                      *)
  13. (*     Calling Sequence:                                                *)
  14. (*                                                                      *)
  15. (*        Get_Capture_File( Capture_FName : AnyStr );                   *)
  16. (*                                                                      *)
  17. (*           Capture_FName --- name of capture file; prompted for       *)
  18. (*                             if null.                                 *)
  19. (*                                                                      *)
  20. (*----------------------------------------------------------------------*)
  21.  
  22. VAR
  23.    OK_File           : BOOLEAN;
  24.    File_Exists       : BOOLEAN;
  25.    Name_Given        : BOOLEAN;
  26.  
  27. BEGIN (* Get_Capture_File *)
  28.  
  29.    Save_Screen( Saved_Screen );
  30.    Draw_Menu_Frame( 10, 10, 70, 15, Menu_Frame_Color,
  31.                     Menu_Text_Color, 'Capture session' );
  32.  
  33.                                    (* If capture mode ON, close current  *)
  34.                                    (* capture file and turn capture mode *)
  35.                                    (* OFF.                               *)
  36.    IF Capture_On THEN
  37.       BEGIN
  38.             (*$I-*)
  39.          CLOSE( Capture_File );
  40.             (*$I+*)
  41.          Capture_On := FALSE;
  42.          WRITELN;
  43.          WRITELN('*** Capturing of session terminated.');
  44.          DELAY( Two_Second_Delay );
  45.       END
  46.    ELSE                            (* If capture mode OFF, then get name *)
  47.                                    (* of file to capture to, and turn on *)
  48.                                    (* capture mode.                      *)
  49.  
  50.       BEGIN  (* Capture mode was Off *)
  51.  
  52.          Capture_File_Name := Capture_FName;
  53.  
  54.          OK_File     := FALSE;
  55.          Name_Given  := LENGTH( Capture_File_Name ) > 0;
  56.  
  57.          REPEAT
  58.  
  59.             GoToXY( 1 , 1 );
  60.             ClrEol;
  61.  
  62.             WRITE('File name to capture session to ? ');
  63.  
  64.             IF ( NOT Name_Given ) THEN
  65.                READLN( Capture_File_Name )
  66.             ELSE
  67.                WRITELN( Capture_File_Name );
  68.             DELAY  ( One_Second_Delay  );
  69.  
  70.             ASSIGN( Capture_File , Capture_File_Name );
  71.                (*$I-*)
  72.             RESET( Capture_File );
  73.                (*$I+*)
  74.  
  75.             IF Int24Result = 0 THEN
  76.                BEGIN
  77.  
  78.                   IF ( NOT Name_Given ) THEN
  79.                      OK_File := YesNo('File ' + Capture_File_Name +
  80.                                       ' already exists, append to it (Y/N) ? ')
  81.                   ELSE
  82.                      OK_File := TRUE;
  83.  
  84.                   File_Exists := TRUE;
  85.  
  86.                      (*$I-*)
  87.                   CLOSE( Capture_File );
  88.                      (*$I+*)
  89.  
  90.                END
  91.             ELSE
  92.                BEGIN
  93.                   OK_File     := TRUE;
  94.                   File_Exists := FALSE;
  95.                END;
  96.  
  97.          UNTIL ( OK_File ) OR ( LENGTH( Capture_File_Name ) = 0 );
  98.  
  99.          IF LENGTH( Capture_File_Name ) > 0 THEN
  100.             BEGIN
  101.  
  102.                ASSIGN ( Capture_File, Capture_File_Name );
  103.                   (*$I-*)
  104.                IF File_Exists THEN
  105.                   APPEND ( Capture_File )
  106.                ELSE
  107.                   REWRITE( Capture_File );
  108.                   (*$I+*)
  109.  
  110.                IF Int24Result <> 0 THEN
  111.                   BEGIN
  112.                      WRITELN('Can''t open ',Capture_File_Name,' for output.');
  113.                      WRITELN('Capture will not be done.');
  114.                   END
  115.                ELSE
  116.                   BEGIN
  117.                      WRITELN('Capturing session to file ',Capture_File_Name );
  118.                      Capture_On := TRUE;
  119.                   END;
  120.  
  121.                DELAY  ( One_Second_Delay  );
  122.  
  123.             END (* Length( Capture_File_Name ) > 0 *);
  124.  
  125.       END  (* Capture mode was OFF *);
  126.  
  127.    Restore_Screen( Saved_Screen );
  128.    Reset_Global_Colors;
  129.  
  130. END   (* Get_Capture_File *);
  131.